package com.xuanzheng.company.util;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 密码加密工具类
 */
public class PasswordUtil {
    
    /**
     * 使用MD5算法对密码进行加密
     * @param password 原始密码
     * @return 加密后的密码
     */
    public static String encryptPassword(String password) {
        try {
            // 获取MD5算法实例
            MessageDigest md = MessageDigest.getInstance("MD5");
            
            // 将密码转换为字节数组并进行加密
            md.update(password.getBytes());
            
            // 将加密后的字节数组转换为16进制字符串
            byte[] digest = md.digest();
            BigInteger bigInt = new BigInteger(1, digest);
            String hashedPassword = bigInt.toString(16);
            
            // 补齐前导零，确保长度为32位
            while (hashedPassword.length() < 32) {
                hashedPassword = "0" + hashedPassword;
            }
            
            return hashedPassword;
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        }
    }
    
    /**
     * 验证密码是否正确
     * @param inputPassword 输入的原始密码
     * @param storedPassword 存储的加密密码
     * @return 密码是否匹配
     */
    public static boolean verifyPassword(String inputPassword, String storedPassword) {
        String encryptedInput = encryptPassword(inputPassword);
        return encryptedInput != null && encryptedInput.equals(storedPassword);
    }
} 